package ace.module.oauth2.server.api.callback;

import ace.module.oauth2.server.api.callback.model.input.Oauth2AceAuthenticationCallbackInput;
import ace.module.oauth2.server.api.model.dto.ext.Oauth2AceAuthResultDto;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;

/**
 * 认证方式的回调协议.
 *
 * @author caspar
 */
public interface Oauth2AceAuthenticationCallbackApi {

  /**
   * 进行认证.
   *
   * @return 认证结果
   */
  Oauth2AceAuthResultDto authentication(@Valid @NotNull Oauth2AceAuthenticationCallbackInput input);
}
